<?php
/*
 * [!] Можно завести таблицу widgets_to_moduls и после запроса выводить только иджеты, привязанные к данному модулю
 *     Это позволит контролировать вывод виджетов из админки
 */
class LifeView extends BasicModulView implements BasicViewInterface{
// представление модуля 
    function __construct($modul_id = null){
        parent::__construct();

        if( !is_null($modul_id) ) $this->modul_id = $modul_id;

        $this->view = View::getInstance(); // через этот объект - работать с парент шаблоном
        $this->basic_tpl = 'Life.tpl';
    }

    function getView(){
        return $this->view;
    }

    function render($tpl = null){
        if($tpl == null)
            $tpl = $this->basic_tpl;
        parent::render($tpl);

        # общее меню слева

        // [!] можно выставить переменную в родительском шаблоне
        // $this->view->left_general_menu_widget = "78";

        // [!] Если виджет глобальный, его можно вызвать из фронт-контроллера

        // [!] Подключение локального виджета (меню слева)
        // $this->view->MenuGeneral_widget = Registry::getInstance() -> get('Widget') -> renderGivenLocalWidget("MenuGeneral");

        // [!] Если виджет глобальный, строчка выше ничего не изменит - ее можно раскоменить, можно закоментить

        // [!] Подключение локального меню слева не через виджет, а через запись переменной родительского шаблона
        // $this->view->left_menu = $this->Get('inc_navigator.tpl');

        $input_data = array('modul_id' => $this->modul_id );

        // Вызов локального виджета
        // Подчиненные секции модуля запрашивает Виджет самостоятельно.
        // Но ему можно передать дополнительные данные, например, modul_id
        $this->view->MenuLocal_widget = Registry::getInstance() -> get('Widget') -> renderGivenLocalWidget("MenuLocal", null, $input_data);

        #
        return $this->html;

        //return $this->html = parent::render();
    }
}
?>